package persistence.model;


import java.awt.Color;

import persistence.dao.MatiereDAO;
import persistence.db.DataSet;

public class Matiere extends AbstractModel {

	private String nomMatiere;
	private String descriptionMatiere;
	private float coeffDivise;
	private Color couleur;
	private int idUE;
	private DataSet seeSet;
	
	/**
	 * Constructeur d'une matière
	 */
	public Matiere(){
		setDao(new MatiereDAO(this));
	}
	
	/**
	 * Constructeur d'une matiere
	 * @param id
	 */
	public Matiere(int id) {
		this();
		setId(id);
	}
	
	/**
	 * Constructeur d'une matiere
	 * @param id identifier de la matiere
	 * @param nom nom de la matiere
	 * @param desc description de la matiere
	 * @param coeff coefficient de la matiere
	 * @param col coloration de la matiere
	 * @param ue identifiant de l'UE
	 * @param seeSet
	 */
	public Matiere(int id, String nom, String desc, float coeff, Color col, int ue, DataSet seeSet) {
		this(id);
		nomMatiere = nom;
		descriptionMatiere = desc;
		coeffDivise = coeff;
		couleur = col;
		idUE = ue;
		this.seeSet = seeSet;
	}

	public String getNomMatiere() {
		return nomMatiere;
	}

	public void setNomMatiere(String nomMatiere) {
		this.nomMatiere = nomMatiere;
	}

	public String getDescriptionMatiere() {
		return descriptionMatiere;
	}

	public void setDescriptionMatiere(String descriptionMatiere) {
		this.descriptionMatiere = descriptionMatiere;
	}

	public float getCoeffDivise() {
		return coeffDivise;
	}

	public void setCoeffDivise(float coeffDivise) {
		this.coeffDivise = coeffDivise;
	}

	public Color getCouleur() {
		return couleur;
	}

	public void setCouleur(Color couleur) {
		this.couleur = couleur;
	}

	public int getIdUE() {
		return idUE;
	}

	public void setIdUE(int idUE) {
		this.idUE = idUE;
	}
	
	public DataSet getSeeSet() {
		return seeSet;
	}

	public void setSeeSet(DataSet seeSet) {
		this.seeSet = seeSet;
	}

	public UE getUE() {
		return (UE) UE.all().get(idUE);
	}

	
	public static DataSet all() {
		MatiereDAO matiereDAO = new MatiereDAO();
		return matiereDAO.all();
	}

	public DataSet getSee() {
		return seeSet;
	}

}
